package mysql8学习.高级.第07章_InnoDB数据存储结构存储;


/**
 * 页头 (56字节)
 *
 * 为了能得到一个数据页中存储的记录的状态信息，
 * 比如本页中已经存储了多少条记录，
 * 第-条记录的地址是什么， 页目录中存储了多少个槽 等等，
 * 特意在页中定义了一个叫Page Header的部分，
 * 这个部分占用固定的56个字节，专门存储"""各种状态信息。"""
 *
 * PAGE_N_DIR_SLOTS  (2字节)   页目录中槽的数量  也就是表示  数据一共分了多少组(包括最大最小记录)
 * PAGE_HEAP_TOP     (2字节)   还未使用空间的最小地址   添加记录时 好找从哪里添加
 * PAGE_N_HEAP       (2字节)   本页中记录的数量(包括最小记录  最大记录  标记删除的记录)
 * PAGE_FREE         (2字节)   记录第一个标记删除的地址   因为每个删除的记录会保存后面删除的地址
 *                                   找到第一个  就找到了所有
 * PAGE_GARBAGE      (2字节)   已删除的地址占用的字节数  计算  有多少无用空间 值大的话  会重构
 * PAGE_LAST_INSERT  (2字节)   最后插入记录的位置
 * PAGE_DIRECTION    (2字节)   记录插入的方向  再次插入时从这个方向插入 加快插入速度
 *                            假如新插入的一条记录的主键值比上一条记录的主键值大，
 *                            我们说这条记录的插入方向是右边，反之则是左边。
 *                            用来表示最后一条记录插入方向的状态就是 PAGE_DIRECTION
 * PAGE_N_DIRECTION  (2字节)   同一个个方向连续插入的记录数量
 * PAGE_N_RECS       (2字节)   本页中记录的数量(不包括最小记录  最大记录  标记删除的记录)
 * PAGE_MAX_TRX_ID   (8字节)   修改当前页的最大事务ID，该值仅在二级索引中定义
 * PAGE_LEVEL        (2字节)   当前页在B+树所在的层级  叶子节点时第0层
 * PAGE_INDEX_ID     (8字节)   索引ID表示当前页属于哪个索引
 * PAGE_BTR_SEG_LEAF (10字节)  B+树叶子段的头部信息  仅在B+树ROOT页定义
 * PAGE_BTR_SEG_TOP  (10字节)  B+树非叶子段的头部信息  仅在B+树ROOT页定义
 *
 *
 */
public class B2_页的页头 {
}
